package xkp.utils;

import java.io.File;

/**
 * 文件操作的工具类
 */
public class FileUtils {
    //递归(recursive)遍历(Traversal)某一个文件夹

    /**
     * 递归遍历文件夹中所有的文件与文件夹
     * @param dir 要被遍历的文件夹对象
     */
    public static void recursiveTraversal(File dir){
        if(!dir.isDirectory()){
            return;
        }

        File[] files = dir.listFiles();
        if(files == null || files.length == 0){
            return;
        }

        for(File file:files){
            System.out.println(file.getAbsolutePath());
            if(file.isDirectory()){
                recursiveTraversal(file);
            }
        }
    }


    /**
     * 递归遍历文件夹中所有的文件，并按照指定类型过滤
     * @param dir  要被遍历的文件夹对象
     * @param fileType  要过滤的文件类型
     */
    public static void recursiveTraversal(File dir,String fileType){
        if(!dir.isDirectory()){
            return;
        }

        File[] files = dir.listFiles();
        if(files == null || files.length == 0){
            return;
        }

        for(File file:files){
            //System.out.println(file.getAbsolutePath());
            if(file.isFile()&& file.getName().endsWith(fileType)){
                System.out.println(file.getAbsolutePath());
            }
            if(file.isDirectory()){
                recursiveTraversal(file,fileType);
            }
        }
    }
}
